#pragma once

#define NOMINMAX

#include <QtCore/QtCore>
#include <QtXml/QtXml>
#include <engine.core/qt_hash.hpp>
#include <engine.core/qt_integration.hpp>


#include <boost/optional.hpp>
#include <boost/foreach.hpp>
#include <boost/signals2.hpp>
#include <boost/smart_ptr.hpp>
#include <boost/make_shared.hpp>
#include <boost/numeric/conversion/cast.hpp>
#include <boost/typeof/typeof.hpp>
#include <boost/property_tree/ptree.hpp>
#include <boost/unordered_map.hpp>
#include <boost/unordered_set.hpp>
#include <boost/scope_exit.hpp>
#include <boost/static_assert.hpp>
#include <boost/any.hpp>
#include <boost/operators.hpp>
#include <boost/fusion/adapted.hpp>
#include <boost/functional/hash.hpp>
#include <boost/spirit/include/qi.hpp>
#include <boost/spirit/include/classic_symbols.hpp>
#include <boost/spirit/include/phoenix_core.hpp>
#include <boost/spirit/include/phoenix_operator.hpp>
#include <boost/spirit/include/phoenix_statement.hpp>
#include <boost/spirit/include/phoenix_container.hpp>
#include <boost/spirit/include/phoenix_fusion.hpp>
#include <boost/spirit/include/phoenix_stl.hpp>
#include <boost/spirit/include/phoenix_object.hpp>
#include <boost/spirit/include/qi_symbols.hpp>
#include <boost/shared_ptr.hpp>
#include <boostext/exception.hpp>
#include <boostext/format.hpp>
#include <boostext/signal.hpp>
#include <boostext/exception.hpp>
#include <boostext/util/messages.hpp>
#include <boostext/util/make_shared.hpp>
#undef foreach
#define foreach BOOST_FOREACH

using boostext::exception;
using boostext::programming_error;
using boostext::critical_exception;
using boostext::invalid_value_exception;
using boostext::not_implemented_exception;
using boostext::format;

#define MLD_MODULE "engine.ui"
